import sys


class Solution(object):
    def midSalary(self, n, w, limit):
        limit.sort(key=lambda x: x[0])
        littles = limit[:n//2] 
        larges = limit[n//2:]
        if min([x[1] for x in larges]) * (n//2 + 1) <= w - sum([x[0] for x in littles]):
            return min([x[1] for x in larges])
        else:
            return (w - sum([x[0] for x in littles])) / (n//2+1)


if __name__ == "__main__":
    s = Solution()
    # assert s.midSalary(3, 20, [8, 1, 7], [10, 4, 9]) == 9
    # assert s.midSalary(5, 20, [1, 2, 3, 4, 5], [3,4,5,6,7]) == 5
    # assert s.midSalary(5, 20, [1, 2, 3, 4, 5], [3,4,7,6,7]) == 5 + 2/3
    # deal with input
    fp = sys.stdin
    nw = fp.readline().split()
    n, w = int(nw[0]), int(nw[1])
    limits = []
    for i in range(n):
        line = fp.readline().split()
        xi, yi = int(line[0]), int(line[1])
        limits.append((xi, yi, i))
    s.midSalary(n, w, limits)